Termination w.r.t. Q of the following Term Rewriting System could be proven:
Q restricted rewrite system:
The TRS R consists of the following rules:
active(2nd(cons1(X, cons(Y, Z)))) → mark(Y)
active(2nd(cons(X, X1))) → mark(2nd(cons1(X, X1)))
active(from(X)) → mark(cons(X, from(s(X))))
mark(2nd(X)) → active(2nd(mark(X)))
mark(cons1(X1, X2)) → active(cons1(mark(X1), mark(X2)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(from(X)) → active(from(mark(X)))
mark(s(X)) → active(s(mark(X)))
2nd(mark(X)) → 2nd(X)
2nd(active(X)) → 2nd(X)
cons1(mark(X1), X2) → cons1(X1, X2)
cons1(X1, mark(X2)) → cons1(X1, X2)
cons1(active(X1), X2) → cons1(X1, X2)
cons1(X1, active(X2)) → cons1(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
from(mark(X)) → from(X)
from(active(X)) → from(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
Q is empty.
↳ QTRS
↳ DependencyPairsProof
Q restricted rewrite system:
The TRS R consists of the following rules:
active(2nd(cons1(X, cons(Y, Z)))) → mark(Y)
active(2nd(cons(X, X1))) → mark(2nd(cons1(X, X1)))
active(from(X)) → mark(cons(X, from(s(X))))
mark(2nd(X)) → active(2nd(mark(X)))
mark(cons1(X1, X2)) → active(cons1(mark(X1), mark(X2)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(from(X)) → active(from(mark(X)))
mark(s(X)) → active(s(mark(X)))
2nd(mark(X)) → 2nd(X)
2nd(active(X)) → 2nd(X)
cons1(mark(X1), X2) → cons1(X1, X2)
cons1(X1, mark(X2)) → cons1(X1, X2)
cons1(active(X1), X2) → cons1(X1, X2)
cons1(X1, active(X2)) → cons1(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
from(mark(X)) → from(X)
from(active(X)) → from(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
Q is empty.
Using Dependency Pairs [1,15] we result in the following initial DP problem:
Q DP problem:
The TRS P consists of the following rules:
CONS(mark(X1), X2) → CONS(X1, X2)
MARK(2nd(X)) → 2ND(mark(X))
FROM(mark(X)) → FROM(X)
ACTIVE(2nd(cons(X, X1))) → 2ND(cons1(X, X1))
CONS1(active(X1), X2) → CONS1(X1, X2)
MARK(s(X)) → MARK(X)
MARK(from(X)) → FROM(mark(X))
MARK(cons(X1, X2)) → MARK(X1)
FROM(active(X)) → FROM(X)
CONS(X1, mark(X2)) → CONS(X1, X2)
2ND(mark(X)) → 2ND(X)
CONS(X1, active(X2)) → CONS(X1, X2)
MARK(s(X)) → ACTIVE(s(mark(X)))
MARK(cons1(X1, X2)) → MARK(X2)
ACTIVE(2nd(cons(X, X1))) → MARK(2nd(cons1(X, X1)))
ACTIVE(2nd(cons1(X, cons(Y, Z)))) → MARK(Y)
MARK(cons1(X1, X2)) → MARK(X1)
ACTIVE(from(X)) → MARK(cons(X, from(s(X))))
MARK(2nd(X)) → ACTIVE(2nd(mark(X)))
S(active(X)) → S(X)
S(mark(X)) → S(X)
MARK(from(X)) → MARK(X)
MARK(s(X)) → S(mark(X))
MARK(cons(X1, X2)) → CONS(mark(X1), X2)
MARK(cons(X1, X2)) → ACTIVE(cons(mark(X1), X2))
CONS1(mark(X1), X2) → CONS1(X1, X2)
MARK(cons1(X1, X2)) → CONS1(mark(X1), mark(X2))
MARK(cons1(X1, X2)) → ACTIVE(cons1(mark(X1), mark(X2)))
ACTIVE(from(X)) → S(X)
ACTIVE(2nd(cons(X, X1))) → CONS1(X, X1)
MARK(from(X)) → ACTIVE(from(mark(X)))
MARK(2nd(X)) → MARK(X)
CONS1(X1, mark(X2)) → CONS1(X1, X2)
CONS1(X1, active(X2)) → CONS1(X1, X2)
CONS(active(X1), X2) → CONS(X1, X2)
2ND(active(X)) → 2ND(X)
ACTIVE(from(X)) → CONS(X, from(s(X)))
ACTIVE(from(X)) → FROM(s(X))
The TRS R consists of the following rules:
active(2nd(cons1(X, cons(Y, Z)))) → mark(Y)
active(2nd(cons(X, X1))) → mark(2nd(cons1(X, X1)))
active(from(X)) → mark(cons(X, from(s(X))))
mark(2nd(X)) → active(2nd(mark(X)))
mark(cons1(X1, X2)) → active(cons1(mark(X1), mark(X2)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(from(X)) → active(from(mark(X)))
mark(s(X)) → active(s(mark(X)))
2nd(mark(X)) → 2nd(X)
2nd(active(X)) → 2nd(X)
cons1(mark(X1), X2) → cons1(X1, X2)
cons1(X1, mark(X2)) → cons1(X1, X2)
cons1(active(X1), X2) → cons1(X1, X2)
cons1(X1, active(X2)) → cons1(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
from(mark(X)) → from(X)
from(active(X)) → from(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
Q DP problem:
The TRS P consists of the following rules:
CONS(mark(X1), X2) → CONS(X1, X2)
MARK(2nd(X)) → 2ND(mark(X))
FROM(mark(X)) → FROM(X)
ACTIVE(2nd(cons(X, X1))) → 2ND(cons1(X, X1))
CONS1(active(X1), X2) → CONS1(X1, X2)
MARK(s(X)) → MARK(X)
MARK(from(X)) → FROM(mark(X))
MARK(cons(X1, X2)) → MARK(X1)
FROM(active(X)) → FROM(X)
CONS(X1, mark(X2)) → CONS(X1, X2)
2ND(mark(X)) → 2ND(X)
CONS(X1, active(X2)) → CONS(X1, X2)
MARK(s(X)) → ACTIVE(s(mark(X)))
MARK(cons1(X1, X2)) → MARK(X2)
ACTIVE(2nd(cons(X, X1))) → MARK(2nd(cons1(X, X1)))
ACTIVE(2nd(cons1(X, cons(Y, Z)))) → MARK(Y)
MARK(cons1(X1, X2)) → MARK(X1)
ACTIVE(from(X)) → MARK(cons(X, from(s(X))))
MARK(2nd(X)) → ACTIVE(2nd(mark(X)))
S(active(X)) → S(X)
S(mark(X)) → S(X)
MARK(from(X)) → MARK(X)
MARK(s(X)) → S(mark(X))
MARK(cons(X1, X2)) → CONS(mark(X1), X2)
MARK(cons(X1, X2)) → ACTIVE(cons(mark(X1), X2))
CONS1(mark(X1), X2) → CONS1(X1, X2)
MARK(cons1(X1, X2)) → CONS1(mark(X1), mark(X2))
MARK(cons1(X1, X2)) → ACTIVE(cons1(mark(X1), mark(X2)))
ACTIVE(from(X)) → S(X)
ACTIVE(2nd(cons(X, X1))) → CONS1(X, X1)
MARK(from(X)) → ACTIVE(from(mark(X)))
MARK(2nd(X)) → MARK(X)
CONS1(X1, mark(X2)) → CONS1(X1, X2)
CONS1(X1, active(X2)) → CONS1(X1, X2)
CONS(active(X1), X2) → CONS(X1, X2)
2ND(active(X)) → 2ND(X)
ACTIVE(from(X)) → CONS(X, from(s(X)))
ACTIVE(from(X)) → FROM(s(X))
The TRS R consists of the following rules:
active(2nd(cons1(X, cons(Y, Z)))) → mark(Y)
active(2nd(cons(X, X1))) → mark(2nd(cons1(X, X1)))
active(from(X)) → mark(cons(X, from(s(X))))
mark(2nd(X)) → active(2nd(mark(X)))
mark(cons1(X1, X2)) → active(cons1(mark(X1), mark(X2)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(from(X)) → active(from(mark(X)))
mark(s(X)) → active(s(mark(X)))
2nd(mark(X)) → 2nd(X)
2nd(active(X)) → 2nd(X)
cons1(mark(X1), X2) → cons1(X1, X2)
cons1(X1, mark(X2)) → cons1(X1, X2)
cons1(active(X1), X2) → cons1(X1, X2)
cons1(X1, active(X2)) → cons1(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
from(mark(X)) → from(X)
from(active(X)) → from(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 6 SCCs with 10 less nodes.
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
S(mark(X)) → S(X)
S(active(X)) → S(X)
The TRS R consists of the following rules:
active(2nd(cons1(X, cons(Y, Z)))) → mark(Y)
active(2nd(cons(X, X1))) → mark(2nd(cons1(X, X1)))
active(from(X)) → mark(cons(X, from(s(X))))
mark(2nd(X)) → active(2nd(mark(X)))
mark(cons1(X1, X2)) → active(cons1(mark(X1), mark(X2)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(from(X)) → active(from(mark(X)))
mark(s(X)) → active(s(mark(X)))
2nd(mark(X)) → 2nd(X)
2nd(active(X)) → 2nd(X)
cons1(mark(X1), X2) → cons1(X1, X2)
cons1(X1, mark(X2)) → cons1(X1, X2)
cons1(active(X1), X2) → cons1(X1, X2)
cons1(X1, active(X2)) → cons1(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
from(mark(X)) → from(X)
from(active(X)) → from(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We can use the usable rules and reduction pair processor [15] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its argument. Then, we can delete all non-usable rules [17] from R.
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
S(active(X)) → S(X)
S(mark(X)) → S(X)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- S(mark(X)) → S(X)
The graph contains the following edges 1 > 1
- S(active(X)) → S(X)
The graph contains the following edges 1 > 1
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
FROM(mark(X)) → FROM(X)
FROM(active(X)) → FROM(X)
The TRS R consists of the following rules:
active(2nd(cons1(X, cons(Y, Z)))) → mark(Y)
active(2nd(cons(X, X1))) → mark(2nd(cons1(X, X1)))
active(from(X)) → mark(cons(X, from(s(X))))
mark(2nd(X)) → active(2nd(mark(X)))
mark(cons1(X1, X2)) → active(cons1(mark(X1), mark(X2)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(from(X)) → active(from(mark(X)))
mark(s(X)) → active(s(mark(X)))
2nd(mark(X)) → 2nd(X)
2nd(active(X)) → 2nd(X)
cons1(mark(X1), X2) → cons1(X1, X2)
cons1(X1, mark(X2)) → cons1(X1, X2)
cons1(active(X1), X2) → cons1(X1, X2)
cons1(X1, active(X2)) → cons1(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
from(mark(X)) → from(X)
from(active(X)) → from(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We can use the usable rules and reduction pair processor [15] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its argument. Then, we can delete all non-usable rules [17] from R.
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
FROM(mark(X)) → FROM(X)
FROM(active(X)) → FROM(X)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- FROM(mark(X)) → FROM(X)
The graph contains the following edges 1 > 1
- FROM(active(X)) → FROM(X)
The graph contains the following edges 1 > 1
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
CONS(X1, active(X2)) → CONS(X1, X2)
CONS(mark(X1), X2) → CONS(X1, X2)
CONS(active(X1), X2) → CONS(X1, X2)
CONS(X1, mark(X2)) → CONS(X1, X2)
The TRS R consists of the following rules:
active(2nd(cons1(X, cons(Y, Z)))) → mark(Y)
active(2nd(cons(X, X1))) → mark(2nd(cons1(X, X1)))
active(from(X)) → mark(cons(X, from(s(X))))
mark(2nd(X)) → active(2nd(mark(X)))
mark(cons1(X1, X2)) → active(cons1(mark(X1), mark(X2)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(from(X)) → active(from(mark(X)))
mark(s(X)) → active(s(mark(X)))
2nd(mark(X)) → 2nd(X)
2nd(active(X)) → 2nd(X)
cons1(mark(X1), X2) → cons1(X1, X2)
cons1(X1, mark(X2)) → cons1(X1, X2)
cons1(active(X1), X2) → cons1(X1, X2)
cons1(X1, active(X2)) → cons1(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
from(mark(X)) → from(X)
from(active(X)) → from(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We can use the usable rules and reduction pair processor [15] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its argument. Then, we can delete all non-usable rules [17] from R.
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
CONS(mark(X1), X2) → CONS(X1, X2)
CONS(X1, active(X2)) → CONS(X1, X2)
CONS(X1, mark(X2)) → CONS(X1, X2)
CONS(active(X1), X2) → CONS(X1, X2)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- CONS(X1, active(X2)) → CONS(X1, X2)
The graph contains the following edges 1 >= 1, 2 > 2
- CONS(mark(X1), X2) → CONS(X1, X2)
The graph contains the following edges 1 > 1, 2 >= 2
- CONS(active(X1), X2) → CONS(X1, X2)
The graph contains the following edges 1 > 1, 2 >= 2
- CONS(X1, mark(X2)) → CONS(X1, X2)
The graph contains the following edges 1 >= 1, 2 > 2
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
CONS1(active(X1), X2) → CONS1(X1, X2)
CONS1(X1, mark(X2)) → CONS1(X1, X2)
CONS1(X1, active(X2)) → CONS1(X1, X2)
CONS1(mark(X1), X2) → CONS1(X1, X2)
The TRS R consists of the following rules:
active(2nd(cons1(X, cons(Y, Z)))) → mark(Y)
active(2nd(cons(X, X1))) → mark(2nd(cons1(X, X1)))
active(from(X)) → mark(cons(X, from(s(X))))
mark(2nd(X)) → active(2nd(mark(X)))
mark(cons1(X1, X2)) → active(cons1(mark(X1), mark(X2)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(from(X)) → active(from(mark(X)))
mark(s(X)) → active(s(mark(X)))
2nd(mark(X)) → 2nd(X)
2nd(active(X)) → 2nd(X)
cons1(mark(X1), X2) → cons1(X1, X2)
cons1(X1, mark(X2)) → cons1(X1, X2)
cons1(active(X1), X2) → cons1(X1, X2)
cons1(X1, active(X2)) → cons1(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
from(mark(X)) → from(X)
from(active(X)) → from(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We can use the usable rules and reduction pair processor [15] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its argument. Then, we can delete all non-usable rules [17] from R.
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
CONS1(active(X1), X2) → CONS1(X1, X2)
CONS1(X1, mark(X2)) → CONS1(X1, X2)
CONS1(mark(X1), X2) → CONS1(X1, X2)
CONS1(X1, active(X2)) → CONS1(X1, X2)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- CONS1(active(X1), X2) → CONS1(X1, X2)
The graph contains the following edges 1 > 1, 2 >= 2
- CONS1(X1, mark(X2)) → CONS1(X1, X2)
The graph contains the following edges 1 >= 1, 2 > 2
- CONS1(X1, active(X2)) → CONS1(X1, X2)
The graph contains the following edges 1 >= 1, 2 > 2
- CONS1(mark(X1), X2) → CONS1(X1, X2)
The graph contains the following edges 1 > 1, 2 >= 2
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
2ND(active(X)) → 2ND(X)
2ND(mark(X)) → 2ND(X)
The TRS R consists of the following rules:
active(2nd(cons1(X, cons(Y, Z)))) → mark(Y)
active(2nd(cons(X, X1))) → mark(2nd(cons1(X, X1)))
active(from(X)) → mark(cons(X, from(s(X))))
mark(2nd(X)) → active(2nd(mark(X)))
mark(cons1(X1, X2)) → active(cons1(mark(X1), mark(X2)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(from(X)) → active(from(mark(X)))
mark(s(X)) → active(s(mark(X)))
2nd(mark(X)) → 2nd(X)
2nd(active(X)) → 2nd(X)
cons1(mark(X1), X2) → cons1(X1, X2)
cons1(X1, mark(X2)) → cons1(X1, X2)
cons1(active(X1), X2) → cons1(X1, X2)
cons1(X1, active(X2)) → cons1(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
from(mark(X)) → from(X)
from(active(X)) → from(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We can use the usable rules and reduction pair processor [15] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its argument. Then, we can delete all non-usable rules [17] from R.
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
2ND(active(X)) → 2ND(X)
2ND(mark(X)) → 2ND(X)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- 2ND(active(X)) → 2ND(X)
The graph contains the following edges 1 > 1
- 2ND(mark(X)) → 2ND(X)
The graph contains the following edges 1 > 1
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
Q DP problem:
The TRS P consists of the following rules:
MARK(from(X)) → MARK(X)
MARK(s(X)) → MARK(X)
MARK(cons(X1, X2)) → ACTIVE(cons(mark(X1), X2))
MARK(cons1(X1, X2)) → ACTIVE(cons1(mark(X1), mark(X2)))
MARK(cons(X1, X2)) → MARK(X1)
MARK(from(X)) → ACTIVE(from(mark(X)))
MARK(2nd(X)) → MARK(X)
MARK(s(X)) → ACTIVE(s(mark(X)))
MARK(cons1(X1, X2)) → MARK(X2)
ACTIVE(2nd(cons1(X, cons(Y, Z)))) → MARK(Y)
ACTIVE(2nd(cons(X, X1))) → MARK(2nd(cons1(X, X1)))
MARK(cons1(X1, X2)) → MARK(X1)
ACTIVE(from(X)) → MARK(cons(X, from(s(X))))
MARK(2nd(X)) → ACTIVE(2nd(mark(X)))
The TRS R consists of the following rules:
active(2nd(cons1(X, cons(Y, Z)))) → mark(Y)
active(2nd(cons(X, X1))) → mark(2nd(cons1(X, X1)))
active(from(X)) → mark(cons(X, from(s(X))))
mark(2nd(X)) → active(2nd(mark(X)))
mark(cons1(X1, X2)) → active(cons1(mark(X1), mark(X2)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(from(X)) → active(from(mark(X)))
mark(s(X)) → active(s(mark(X)))
2nd(mark(X)) → 2nd(X)
2nd(active(X)) → 2nd(X)
cons1(mark(X1), X2) → cons1(X1, X2)
cons1(X1, mark(X2)) → cons1(X1, X2)
cons1(active(X1), X2) → cons1(X1, X2)
cons1(X1, active(X2)) → cons1(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
from(mark(X)) → from(X)
from(active(X)) → from(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].
The following pairs can be oriented strictly and are deleted.
MARK(cons(X1, X2)) → ACTIVE(cons(mark(X1), X2))
MARK(cons1(X1, X2)) → ACTIVE(cons1(mark(X1), mark(X2)))
MARK(s(X)) → ACTIVE(s(mark(X)))
The remaining pairs can at least be oriented weakly.
MARK(from(X)) → MARK(X)
MARK(s(X)) → MARK(X)
MARK(cons(X1, X2)) → MARK(X1)
MARK(from(X)) → ACTIVE(from(mark(X)))
MARK(2nd(X)) → MARK(X)
MARK(cons1(X1, X2)) → MARK(X2)
ACTIVE(2nd(cons1(X, cons(Y, Z)))) → MARK(Y)
ACTIVE(2nd(cons(X, X1))) → MARK(2nd(cons1(X, X1)))
MARK(cons1(X1, X2)) → MARK(X1)
ACTIVE(from(X)) → MARK(cons(X, from(s(X))))
MARK(2nd(X)) → ACTIVE(2nd(mark(X)))
Used ordering: Polynomial interpretation [25]:
POL(2nd(x1)) = 1
POL(ACTIVE(x1)) = x1
POL(MARK(x1)) = 1
POL(active(x1)) = 0
POL(cons(x1, x2)) = 0
POL(cons1(x1, x2)) = 0
POL(from(x1)) = 1
POL(mark(x1)) = 0
POL(s(x1)) = 0
The following usable rules [17] were oriented:
from(active(X)) → from(X)
from(mark(X)) → from(X)
cons(X1, active(X2)) → cons(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
s(active(X)) → s(X)
s(mark(X)) → s(X)
cons1(X1, mark(X2)) → cons1(X1, X2)
cons1(active(X1), X2) → cons1(X1, X2)
cons1(X1, active(X2)) → cons1(X1, X2)
cons1(mark(X1), X2) → cons1(X1, X2)
2nd(active(X)) → 2nd(X)
2nd(mark(X)) → 2nd(X)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
Q DP problem:
The TRS P consists of the following rules:
MARK(from(X)) → MARK(X)
MARK(from(X)) → ACTIVE(from(mark(X)))
MARK(2nd(X)) → MARK(X)
MARK(s(X)) → MARK(X)
MARK(cons1(X1, X2)) → MARK(X2)
ACTIVE(2nd(cons(X, X1))) → MARK(2nd(cons1(X, X1)))
ACTIVE(2nd(cons1(X, cons(Y, Z)))) → MARK(Y)
MARK(cons(X1, X2)) → MARK(X1)
MARK(cons1(X1, X2)) → MARK(X1)
ACTIVE(from(X)) → MARK(cons(X, from(s(X))))
MARK(2nd(X)) → ACTIVE(2nd(mark(X)))
The TRS R consists of the following rules:
active(2nd(cons1(X, cons(Y, Z)))) → mark(Y)
active(2nd(cons(X, X1))) → mark(2nd(cons1(X, X1)))
active(from(X)) → mark(cons(X, from(s(X))))
mark(2nd(X)) → active(2nd(mark(X)))
mark(cons1(X1, X2)) → active(cons1(mark(X1), mark(X2)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(from(X)) → active(from(mark(X)))
mark(s(X)) → active(s(mark(X)))
2nd(mark(X)) → 2nd(X)
2nd(active(X)) → 2nd(X)
cons1(mark(X1), X2) → cons1(X1, X2)
cons1(X1, mark(X2)) → cons1(X1, X2)
cons1(active(X1), X2) → cons1(X1, X2)
cons1(X1, active(X2)) → cons1(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
from(mark(X)) → from(X)
from(active(X)) → from(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].
The following pairs can be oriented strictly and are deleted.
MARK(2nd(X)) → MARK(X)
ACTIVE(2nd(cons1(X, cons(Y, Z)))) → MARK(Y)
The remaining pairs can at least be oriented weakly.
MARK(from(X)) → MARK(X)
MARK(from(X)) → ACTIVE(from(mark(X)))
MARK(s(X)) → MARK(X)
MARK(cons1(X1, X2)) → MARK(X2)
ACTIVE(2nd(cons(X, X1))) → MARK(2nd(cons1(X, X1)))
MARK(cons(X1, X2)) → MARK(X1)
MARK(cons1(X1, X2)) → MARK(X1)
ACTIVE(from(X)) → MARK(cons(X, from(s(X))))
MARK(2nd(X)) → ACTIVE(2nd(mark(X)))
Used ordering: Matrix interpretation [3]:
Non-tuple symbols:
M( cons(x1, x2) ) = | | + | | · | x1 | + | | · | x2 |
M( cons1(x1, x2) ) = | | + | | · | x1 | + | | · | x2 |
Tuple symbols:
Matrix type:
We used a basic matrix type which is not further parametrizeable.
As matrix orders are CE-compatible, we used usable rules w.r.t. argument filtering in the order.
The following usable rules [17] were oriented:
from(active(X)) → from(X)
from(mark(X)) → from(X)
cons(X1, active(X2)) → cons(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
s(active(X)) → s(X)
s(mark(X)) → s(X)
active(from(X)) → mark(cons(X, from(s(X))))
mark(cons1(X1, X2)) → active(cons1(mark(X1), mark(X2)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(2nd(X)) → active(2nd(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(from(X)) → active(from(mark(X)))
active(2nd(cons1(X, cons(Y, Z)))) → mark(Y)
active(2nd(cons(X, X1))) → mark(2nd(cons1(X, X1)))
cons1(X1, mark(X2)) → cons1(X1, X2)
cons1(active(X1), X2) → cons1(X1, X2)
cons1(X1, active(X2)) → cons1(X1, X2)
cons1(mark(X1), X2) → cons1(X1, X2)
2nd(active(X)) → 2nd(X)
2nd(mark(X)) → 2nd(X)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
Q DP problem:
The TRS P consists of the following rules:
MARK(from(X)) → MARK(X)
MARK(from(X)) → ACTIVE(from(mark(X)))
MARK(s(X)) → MARK(X)
MARK(cons1(X1, X2)) → MARK(X2)
MARK(cons(X1, X2)) → MARK(X1)
ACTIVE(2nd(cons(X, X1))) → MARK(2nd(cons1(X, X1)))
MARK(cons1(X1, X2)) → MARK(X1)
ACTIVE(from(X)) → MARK(cons(X, from(s(X))))
MARK(2nd(X)) → ACTIVE(2nd(mark(X)))
The TRS R consists of the following rules:
active(2nd(cons1(X, cons(Y, Z)))) → mark(Y)
active(2nd(cons(X, X1))) → mark(2nd(cons1(X, X1)))
active(from(X)) → mark(cons(X, from(s(X))))
mark(2nd(X)) → active(2nd(mark(X)))
mark(cons1(X1, X2)) → active(cons1(mark(X1), mark(X2)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(from(X)) → active(from(mark(X)))
mark(s(X)) → active(s(mark(X)))
2nd(mark(X)) → 2nd(X)
2nd(active(X)) → 2nd(X)
cons1(mark(X1), X2) → cons1(X1, X2)
cons1(X1, mark(X2)) → cons1(X1, X2)
cons1(active(X1), X2) → cons1(X1, X2)
cons1(X1, active(X2)) → cons1(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
from(mark(X)) → from(X)
from(active(X)) → from(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].
The following pairs can be oriented strictly and are deleted.
MARK(cons1(X1, X2)) → MARK(X2)
MARK(cons1(X1, X2)) → MARK(X1)
The remaining pairs can at least be oriented weakly.
MARK(from(X)) → MARK(X)
MARK(from(X)) → ACTIVE(from(mark(X)))
MARK(s(X)) → MARK(X)
MARK(cons(X1, X2)) → MARK(X1)
ACTIVE(2nd(cons(X, X1))) → MARK(2nd(cons1(X, X1)))
ACTIVE(from(X)) → MARK(cons(X, from(s(X))))
MARK(2nd(X)) → ACTIVE(2nd(mark(X)))
Used ordering: Matrix interpretation [3]:
Non-tuple symbols:
M( cons(x1, x2) ) = | | + | | · | x1 | + | | · | x2 |
M( cons1(x1, x2) ) = | | + | | · | x1 | + | | · | x2 |
Tuple symbols:
Matrix type:
We used a basic matrix type which is not further parametrizeable.
As matrix orders are CE-compatible, we used usable rules w.r.t. argument filtering in the order.
The following usable rules [17] were oriented:
from(active(X)) → from(X)
from(mark(X)) → from(X)
cons(X1, active(X2)) → cons(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
s(active(X)) → s(X)
s(mark(X)) → s(X)
active(from(X)) → mark(cons(X, from(s(X))))
mark(cons1(X1, X2)) → active(cons1(mark(X1), mark(X2)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(2nd(X)) → active(2nd(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(from(X)) → active(from(mark(X)))
active(2nd(cons1(X, cons(Y, Z)))) → mark(Y)
active(2nd(cons(X, X1))) → mark(2nd(cons1(X, X1)))
cons1(X1, mark(X2)) → cons1(X1, X2)
cons1(active(X1), X2) → cons1(X1, X2)
cons1(X1, active(X2)) → cons1(X1, X2)
cons1(mark(X1), X2) → cons1(X1, X2)
2nd(active(X)) → 2nd(X)
2nd(mark(X)) → 2nd(X)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
Q DP problem:
The TRS P consists of the following rules:
MARK(from(X)) → MARK(X)
MARK(from(X)) → ACTIVE(from(mark(X)))
MARK(s(X)) → MARK(X)
ACTIVE(2nd(cons(X, X1))) → MARK(2nd(cons1(X, X1)))
MARK(cons(X1, X2)) → MARK(X1)
ACTIVE(from(X)) → MARK(cons(X, from(s(X))))
MARK(2nd(X)) → ACTIVE(2nd(mark(X)))
The TRS R consists of the following rules:
active(2nd(cons1(X, cons(Y, Z)))) → mark(Y)
active(2nd(cons(X, X1))) → mark(2nd(cons1(X, X1)))
active(from(X)) → mark(cons(X, from(s(X))))
mark(2nd(X)) → active(2nd(mark(X)))
mark(cons1(X1, X2)) → active(cons1(mark(X1), mark(X2)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(from(X)) → active(from(mark(X)))
mark(s(X)) → active(s(mark(X)))
2nd(mark(X)) → 2nd(X)
2nd(active(X)) → 2nd(X)
cons1(mark(X1), X2) → cons1(X1, X2)
cons1(X1, mark(X2)) → cons1(X1, X2)
cons1(active(X1), X2) → cons1(X1, X2)
cons1(X1, active(X2)) → cons1(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
from(mark(X)) → from(X)
from(active(X)) → from(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].
The following pairs can be oriented strictly and are deleted.
MARK(from(X)) → MARK(X)
MARK(cons(X1, X2)) → MARK(X1)
The remaining pairs can at least be oriented weakly.
MARK(from(X)) → ACTIVE(from(mark(X)))
MARK(s(X)) → MARK(X)
ACTIVE(2nd(cons(X, X1))) → MARK(2nd(cons1(X, X1)))
ACTIVE(from(X)) → MARK(cons(X, from(s(X))))
MARK(2nd(X)) → ACTIVE(2nd(mark(X)))
Used ordering: Matrix interpretation [3]:
Non-tuple symbols:
M( cons(x1, x2) ) = | | + | | · | x1 | + | | · | x2 |
M( cons1(x1, x2) ) = | | + | | · | x1 | + | | · | x2 |
Tuple symbols:
Matrix type:
We used a basic matrix type which is not further parametrizeable.
As matrix orders are CE-compatible, we used usable rules w.r.t. argument filtering in the order.
The following usable rules [17] were oriented:
from(active(X)) → from(X)
from(mark(X)) → from(X)
cons(X1, active(X2)) → cons(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
s(active(X)) → s(X)
s(mark(X)) → s(X)
active(from(X)) → mark(cons(X, from(s(X))))
mark(cons1(X1, X2)) → active(cons1(mark(X1), mark(X2)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(2nd(X)) → active(2nd(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(from(X)) → active(from(mark(X)))
active(2nd(cons1(X, cons(Y, Z)))) → mark(Y)
active(2nd(cons(X, X1))) → mark(2nd(cons1(X, X1)))
cons1(X1, mark(X2)) → cons1(X1, X2)
cons1(active(X1), X2) → cons1(X1, X2)
cons1(X1, active(X2)) → cons1(X1, X2)
cons1(mark(X1), X2) → cons1(X1, X2)
2nd(active(X)) → 2nd(X)
2nd(mark(X)) → 2nd(X)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
Q DP problem:
The TRS P consists of the following rules:
MARK(from(X)) → ACTIVE(from(mark(X)))
MARK(s(X)) → MARK(X)
ACTIVE(2nd(cons(X, X1))) → MARK(2nd(cons1(X, X1)))
ACTIVE(from(X)) → MARK(cons(X, from(s(X))))
MARK(2nd(X)) → ACTIVE(2nd(mark(X)))
The TRS R consists of the following rules:
active(2nd(cons1(X, cons(Y, Z)))) → mark(Y)
active(2nd(cons(X, X1))) → mark(2nd(cons1(X, X1)))
active(from(X)) → mark(cons(X, from(s(X))))
mark(2nd(X)) → active(2nd(mark(X)))
mark(cons1(X1, X2)) → active(cons1(mark(X1), mark(X2)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(from(X)) → active(from(mark(X)))
mark(s(X)) → active(s(mark(X)))
2nd(mark(X)) → 2nd(X)
2nd(active(X)) → 2nd(X)
cons1(mark(X1), X2) → cons1(X1, X2)
cons1(X1, mark(X2)) → cons1(X1, X2)
cons1(active(X1), X2) → cons1(X1, X2)
cons1(X1, active(X2)) → cons1(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
from(mark(X)) → from(X)
from(active(X)) → from(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].
The following pairs can be oriented strictly and are deleted.
ACTIVE(from(X)) → MARK(cons(X, from(s(X))))
The remaining pairs can at least be oriented weakly.
MARK(from(X)) → ACTIVE(from(mark(X)))
MARK(s(X)) → MARK(X)
ACTIVE(2nd(cons(X, X1))) → MARK(2nd(cons1(X, X1)))
MARK(2nd(X)) → ACTIVE(2nd(mark(X)))
Used ordering: Combined order from the following AFS and order.
MARK(x1) = x1
from(x1) = from
ACTIVE(x1) = ACTIVE
mark(x1) = mark
s(x1) = x1
2nd(x1) = 2nd
cons(x1, x2) = cons
cons1(x1, x2) = cons1
active(x1) = x1
Recursive path order with status [2].
Quasi-Precedence:
mark > [from, ACTIVE, 2nd] > cons
mark > cons1 > cons
Status: from: []
cons1: multiset
cons: multiset
mark: []
2nd: []
ACTIVE: []
The following usable rules [17] were oriented:
cons(X1, active(X2)) → cons(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
2nd(active(X)) → 2nd(X)
2nd(mark(X)) → 2nd(X)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
Q DP problem:
The TRS P consists of the following rules:
MARK(from(X)) → ACTIVE(from(mark(X)))
MARK(s(X)) → MARK(X)
ACTIVE(2nd(cons(X, X1))) → MARK(2nd(cons1(X, X1)))
MARK(2nd(X)) → ACTIVE(2nd(mark(X)))
The TRS R consists of the following rules:
active(2nd(cons1(X, cons(Y, Z)))) → mark(Y)
active(2nd(cons(X, X1))) → mark(2nd(cons1(X, X1)))
active(from(X)) → mark(cons(X, from(s(X))))
mark(2nd(X)) → active(2nd(mark(X)))
mark(cons1(X1, X2)) → active(cons1(mark(X1), mark(X2)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(from(X)) → active(from(mark(X)))
mark(s(X)) → active(s(mark(X)))
2nd(mark(X)) → 2nd(X)
2nd(active(X)) → 2nd(X)
cons1(mark(X1), X2) → cons1(X1, X2)
cons1(X1, mark(X2)) → cons1(X1, X2)
cons1(active(X1), X2) → cons1(X1, X2)
cons1(X1, active(X2)) → cons1(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
from(mark(X)) → from(X)
from(active(X)) → from(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].
The following pairs can be oriented strictly and are deleted.
MARK(s(X)) → MARK(X)
The remaining pairs can at least be oriented weakly.
MARK(from(X)) → ACTIVE(from(mark(X)))
ACTIVE(2nd(cons(X, X1))) → MARK(2nd(cons1(X, X1)))
MARK(2nd(X)) → ACTIVE(2nd(mark(X)))
Used ordering: Combined order from the following AFS and order.
MARK(x1) = MARK(x1)
from(x1) = from
ACTIVE(x1) = ACTIVE(x1)
mark(x1) = mark(x1)
s(x1) = s(x1)
2nd(x1) = 2nd
cons(x1, x2) = x2
cons1(x1, x2) = cons1(x1)
active(x1) = active
Recursive path order with status [2].
Quasi-Precedence:
[cons11, active] > [from, mark1] > [MARK1, ACTIVE1, s1, 2nd]
Status: from: multiset
active: []
MARK1: [1]
cons11: multiset
mark1: multiset
s1: multiset
2nd: multiset
ACTIVE1: [1]
The following usable rules [17] were oriented:
from(active(X)) → from(X)
from(mark(X)) → from(X)
2nd(active(X)) → 2nd(X)
2nd(mark(X)) → 2nd(X)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
Q DP problem:
The TRS P consists of the following rules:
MARK(from(X)) → ACTIVE(from(mark(X)))
ACTIVE(2nd(cons(X, X1))) → MARK(2nd(cons1(X, X1)))
MARK(2nd(X)) → ACTIVE(2nd(mark(X)))
The TRS R consists of the following rules:
active(2nd(cons1(X, cons(Y, Z)))) → mark(Y)
active(2nd(cons(X, X1))) → mark(2nd(cons1(X, X1)))
active(from(X)) → mark(cons(X, from(s(X))))
mark(2nd(X)) → active(2nd(mark(X)))
mark(cons1(X1, X2)) → active(cons1(mark(X1), mark(X2)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(from(X)) → active(from(mark(X)))
mark(s(X)) → active(s(mark(X)))
2nd(mark(X)) → 2nd(X)
2nd(active(X)) → 2nd(X)
cons1(mark(X1), X2) → cons1(X1, X2)
cons1(X1, mark(X2)) → cons1(X1, X2)
cons1(active(X1), X2) → cons1(X1, X2)
cons1(X1, active(X2)) → cons1(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
from(mark(X)) → from(X)
from(active(X)) → from(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].
The following pairs can be oriented strictly and are deleted.
MARK(from(X)) → ACTIVE(from(mark(X)))
The remaining pairs can at least be oriented weakly.
ACTIVE(2nd(cons(X, X1))) → MARK(2nd(cons1(X, X1)))
MARK(2nd(X)) → ACTIVE(2nd(mark(X)))
Used ordering: Polynomial interpretation [25]:
POL(2nd(x1)) = 0
POL(ACTIVE(x1)) = 0
POL(MARK(x1)) = x1
POL(active(x1)) = 0
POL(cons(x1, x2)) = 0
POL(cons1(x1, x2)) = 0
POL(from(x1)) = 1
POL(mark(x1)) = 0
POL(s(x1)) = 0
The following usable rules [17] were oriented:
2nd(active(X)) → 2nd(X)
2nd(mark(X)) → 2nd(X)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
Q DP problem:
The TRS P consists of the following rules:
ACTIVE(2nd(cons(X, X1))) → MARK(2nd(cons1(X, X1)))
MARK(2nd(X)) → ACTIVE(2nd(mark(X)))
The TRS R consists of the following rules:
active(2nd(cons1(X, cons(Y, Z)))) → mark(Y)
active(2nd(cons(X, X1))) → mark(2nd(cons1(X, X1)))
active(from(X)) → mark(cons(X, from(s(X))))
mark(2nd(X)) → active(2nd(mark(X)))
mark(cons1(X1, X2)) → active(cons1(mark(X1), mark(X2)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(from(X)) → active(from(mark(X)))
mark(s(X)) → active(s(mark(X)))
2nd(mark(X)) → 2nd(X)
2nd(active(X)) → 2nd(X)
cons1(mark(X1), X2) → cons1(X1, X2)
cons1(X1, mark(X2)) → cons1(X1, X2)
cons1(active(X1), X2) → cons1(X1, X2)
cons1(X1, active(X2)) → cons1(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
from(mark(X)) → from(X)
from(active(X)) → from(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].
The following pairs can be oriented strictly and are deleted.
ACTIVE(2nd(cons(X, X1))) → MARK(2nd(cons1(X, X1)))
The remaining pairs can at least be oriented weakly.
MARK(2nd(X)) → ACTIVE(2nd(mark(X)))
Used ordering: Matrix interpretation [3]:
Non-tuple symbols:
M( cons(x1, x2) ) = | | + | | · | x1 | + | | · | x2 |
M( cons1(x1, x2) ) = | | + | | · | x1 | + | | · | x2 |
Tuple symbols:
Matrix type:
We used a basic matrix type which is not further parametrizeable.
As matrix orders are CE-compatible, we used usable rules w.r.t. argument filtering in the order.
The following usable rules [17] were oriented:
from(active(X)) → from(X)
from(mark(X)) → from(X)
active(from(X)) → mark(cons(X, from(s(X))))
mark(cons1(X1, X2)) → active(cons1(mark(X1), mark(X2)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(2nd(X)) → active(2nd(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(from(X)) → active(from(mark(X)))
active(2nd(cons1(X, cons(Y, Z)))) → mark(Y)
active(2nd(cons(X, X1))) → mark(2nd(cons1(X, X1)))
cons(X1, active(X2)) → cons(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
s(active(X)) → s(X)
s(mark(X)) → s(X)
cons1(X1, mark(X2)) → cons1(X1, X2)
cons1(active(X1), X2) → cons1(X1, X2)
cons1(X1, active(X2)) → cons1(X1, X2)
cons1(mark(X1), X2) → cons1(X1, X2)
2nd(active(X)) → 2nd(X)
2nd(mark(X)) → 2nd(X)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
Q DP problem:
The TRS P consists of the following rules:
MARK(2nd(X)) → ACTIVE(2nd(mark(X)))
The TRS R consists of the following rules:
active(2nd(cons1(X, cons(Y, Z)))) → mark(Y)
active(2nd(cons(X, X1))) → mark(2nd(cons1(X, X1)))
active(from(X)) → mark(cons(X, from(s(X))))
mark(2nd(X)) → active(2nd(mark(X)))
mark(cons1(X1, X2)) → active(cons1(mark(X1), mark(X2)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(from(X)) → active(from(mark(X)))
mark(s(X)) → active(s(mark(X)))
2nd(mark(X)) → 2nd(X)
2nd(active(X)) → 2nd(X)
cons1(mark(X1), X2) → cons1(X1, X2)
cons1(X1, mark(X2)) → cons1(X1, X2)
cons1(active(X1), X2) → cons1(X1, X2)
cons1(X1, active(X2)) → cons1(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
from(mark(X)) → from(X)
from(active(X)) → from(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 0 SCCs with 1 less node.